home *** CD-ROM | disk | FTP | other *** search
/ Hyper Animation Series: Viper (Limited Edition) / Hyper Animation Series: VIPER (Limited Edition).iso / pc / SYSTEM / class / Fixed.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-08-04  |  2.0 KB  |  121 lines

  1. class Fixed {
  2.    public static final int Mul(int var0, int var1) {
  3.       long var2 = (long)var0;
  4.       long var4 = (long)var1;
  5.       var2 <<= 16;
  6.       var2 *= var4;
  7.       var2 >>>= 32;
  8.       var0 = (int)var2;
  9.       return var0;
  10.    }
  11.  
  12.    public static final int Div(int var0, int var1) {
  13.       long var2 = (long)var0;
  14.       long var4 = (long)var1;
  15.       var2 <<= 16;
  16.       var2 /= var4;
  17.       var0 = (int)var2;
  18.       return var0;
  19.    }
  20.  
  21.    public static final short FixedToAngle(int var0) {
  22.       short var1 = (short)((var0 & 16776960) >>> 8);
  23.       return var1;
  24.    }
  25.  
  26.    public static final int AngleToFixed(short var0) {
  27.       int var1 = var0 << 8;
  28.       return var1;
  29.    }
  30.  
  31.    public static final int getDistance(int var0, int var1, int var2, int var3) {
  32.       double var5 = (double)var0 / (double)65536.0F;
  33.       double var7 = (double)var1 / (double)65536.0F;
  34.       double var9 = (double)var2 / (double)65536.0F;
  35.       double var11 = (double)var3 / (double)65536.0F;
  36.       double var13 = (var9 - var5) * (var9 - var5);
  37.       double var15 = (var11 - var7) * (var11 - var7);
  38.       int var4 = (int)(Math.sqrt(var13 + var15) * (double)65536.0F);
  39.       return var4;
  40.    }
  41.  
  42.    public static final short getDir(int var0, int var1, int var2, int var3) {
  43.       short var4 = 0;
  44.       int var5 = var2 - var0;
  45.       int var6 = var3 - var1;
  46.       int var7 = Math.abs(var5);
  47.       int var8 = Math.abs(var6);
  48.       if (var7 == 0) {
  49.          ++var7;
  50.       }
  51.  
  52.       if (var8 == 0) {
  53.          ++var8;
  54.       }
  55.  
  56.       if (var5 > 0) {
  57.          if (var6 > 0) {
  58.             if (var7 < var8) {
  59.                var4 = (short)ATan(var7, var8);
  60.             } else {
  61.                var4 = (short)(16384 - ATan(var8, var7));
  62.             }
  63.          } else if (var7 > var8) {
  64.             var4 = (short)(16384 + ATan(var8, var7));
  65.          } else {
  66.             var4 = (short)('ΦÇÇ' - ATan(var7, var8));
  67.          }
  68.       } else if (var6 < 0) {
  69.          if (var7 < var8) {
  70.             var4 = (short)('ΦÇÇ' + ATan(var7, var8));
  71.          } else {
  72.             var4 = (short)('∞ÇÇ' - ATan(var8, var7));
  73.          }
  74.       } else if (var7 > var8) {
  75.          var4 = (short)('∞ÇÇ' + ATan(var8, var7));
  76.       } else {
  77.          var4 = (short)(-ATan(var7, var8));
  78.       }
  79.  
  80.       return var4;
  81.    }
  82.  
  83.    public static final Position Rot(Position var0, Position var1, short var2) {
  84.       int var7 = var0.getX();
  85.       int var8 = var0.getY();
  86.       int var9 = var1.getX();
  87.       int var10 = var1.getY();
  88.       int var11 = var9 - var7;
  89.       int var12 = var10 - var8;
  90.       int var5 = Sin(var2);
  91.       int var6 = Cos(var2);
  92.       int var3 = Mul(var6, var11) - Mul(var5, var12) + var7;
  93.       int var4 = Mul(var5, var11) + Mul(var6, var12) + var8;
  94.       return new Position(var3, var4, 0);
  95.    }
  96.  
  97.    public static final int Sqrt(int var0) {
  98.       return (int)(Math.sqrt((double)var0 / (double)65536.0F) * (double)65536.0F);
  99.    }
  100.  
  101.    public static final int Sin(short var0) {
  102.       return (int)(Math.sin((double)var0 / (double)32768.0F * Math.PI) * (double)65536.0F);
  103.    }
  104.  
  105.    public static final int Cos(short var0) {
  106.       return (int)(Math.cos((double)var0 / (double)32768.0F * Math.PI) * (double)65536.0F);
  107.    }
  108.  
  109.    public static final int Tan(short var0) {
  110.       return (int)(Math.tan((double)var0 / (double)32768.0F * Math.PI) * (double)65536.0F);
  111.    }
  112.  
  113.    public static final short ATan(int var0, int var1) {
  114.       return (short)(Div(var0, var1) >> 3);
  115.    }
  116.  
  117.    public static final int Random() {
  118.       return (int)(Math.random() * (double)65536.0F);
  119.    }
  120. }
  121.